Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: some issues in 2.2 #1565

Merged
merged 7 commits into from
Mar 28, 2024
Merged

Conversation

ccx1024cc
Copy link
Contributor

Types of changes

  1. fix: bad read by wrong data region
  2. feat: reuse blob cache of old version
  3. fix: compatibility to image without ext table for blob cache
  4. fix: residual fuse mountpoint after graceful shutdown

泰友 added 2 commits March 27, 2024 06:48
    1. Case1: Fuse server exits in thread not main. There is possibility
       that process finishes before shutdown of server.
    2. Case2: Fuse server exits in thread of state machine. There is
       possibiltiy that state machine not responses to signal catch
       thread. Then dead lock happens. Process exits before shutdown of
       server.

    This pr aims to seperator shutdown actions from signal catch
    handler. It only notifies controller. Controller exits with
    shutdown of fuse server. No race. No deadlock.

Signed-off-by: 泰友 <[email protected]>
    There are scenes that cache file is smaller than expect size. Such as:

    1. Nydusd 1.6 generates cache file by prefetch, which is smaller than size in boot.
    2. Nydusd 2.2 generates cache file by prefetch, when image not provide ext blob tables.
    3. Nydusd not have enough time to fill cache for blob.

    Equality check for size is too much strict for both 1.6
    compatibility and 2.2 concurrency. This pr ensures blob size smaller
    or equal than expect size. It also truncates blob cache when smaller
    than expect size.

Signed-off-by: 泰友 <[email protected]>
@ccx1024cc ccx1024cc requested a review from a team as a code owner March 27, 2024 07:01
@ccx1024cc ccx1024cc requested review from bergwolf, imeoer and power-more and removed request for a team March 27, 2024 07:01
泰友 added 2 commits March 27, 2024 07:50
    Nydus2.2 has same format for blob cache and bitmap on disk. However,
    2.2 nydusd not use blob cache of 1.6 nydusd. This pr counts ready
    chunk number for both 1.6 and 2.2, instead of thinking it as not filled
    at all.

Signed-off-by: 泰友 <[email protected]>
    User io may involve discontinuous segments in different chunks. Bad
    read is produced by merging them into continuous one. That is what
    Region does. This pr separate discontinuous segments into different
    regions, avoiding merging forcibly.

Signed-off-by: 泰友 <[email protected]>
    Upgrade mio to 0.8.11
    Upgrade h2 to 0.3.25

Signed-off-by: 泰友 <[email protected]>
@ccx1024cc ccx1024cc force-pushed the morgan/up2.2-fix branch 2 times, most recently from e9482d7 to 8fb1736 Compare March 27, 2024 08:37
@ccx1024cc ccx1024cc requested a review from a team as a code owner March 27, 2024 08:37
@ccx1024cc ccx1024cc requested review from gaius-qi and removed request for a team March 27, 2024 08:37
@ccx1024cc ccx1024cc force-pushed the morgan/up2.2-fix branch 2 times, most recently from 2bdbee1 to 1a6eaed Compare March 27, 2024 09:07
@ccx1024cc ccx1024cc force-pushed the morgan/up2.2-fix branch 4 times, most recently from 331a804 to 8151f2b Compare March 27, 2024 11:19
    From 1.66 to 1.70

Signed-off-by: 泰友 <[email protected]>
@ccx1024cc ccx1024cc merged commit 4db9fd7 into dragonflyoss:stable/v2.2 Mar 28, 2024
6 checks passed
@ccx1024cc ccx1024cc deleted the morgan/up2.2-fix branch March 28, 2024 01:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants